
Vue.component2('a_1_0_2_15_1', {  
    template: `
        <div  :class="{ 'a_1_0_2_15_1_lines test': data.true, 'a_1_0_2_15_1_lines_onclick': data.onclick_flag }" @click="handle_click" v-show="show_flag">
        <span :style="'padding-left: '+data._space_+'px;'"></span>
        <span  v-if="data.icon1_show_flag"class="icon iconfont icon-add_dir1"style="margin-right:10px"></span>
        
        <span  class="a_1_0_2_15_1_hid_line" style="color:#bcbcbc">{{data.name}}</span>
        <div style="display:inline-block;flex:1;">
        <div style="display:flex;
    justify-content: flex-end;
    display: flex;">
    
        <div  @click="click1($event,k)" v-for="(v,k) in data.icon_data"
        :key="k">
         <a_1_0_3_0_0 style="display: inline-block;"
         :deepcopy_data="v"></a_1_0_3_0_0>
        </div>
        </div>
        </div>



















        </div>
`,
data(){
    return{
        show_flag:true,
        data:{
            onclick_flag:false,
            tree_data:{},//
            icon_data:{},
            icon1_show_flag:true,
            click:null,
            click_obj:null,
            true:true,
            recv_data:null,
            false:false,
            close:true,
            name:"",
            _space_:0,
        }
    }
},
methods:{
    handle_click:async function(event){
        //点击当前 高亮显示
        try{//console.log("高亮",this.data.path);
this.data.tree_data.set_onclick_flag(this.data.path)}catch{}
        // /* console.log("我点击了一次")*/
        try{
            // if(!this.data.recv_data){
                await this.data.刷新();
            // }
            
        
            /*console.log("?2")*/}
        catch{}

        if (this.data.click){
            try{
                this.data.click(event)
            
                // console.log("start click2")
            }
            catch{}
            return 
        }


        if (this.data.click_obj){
            try{
                lhp_run_func(this.data.click_obj.func,this.data.click_obj.args)
            
                // console.log("start click3")
            }
            catch{}
            return 
        }
        try{
            this.data.click_handle(this.data.path,this.data.close);
        }catch{}
    },
    click1:async function(event,k){
       /* console.log(',,,',this.data.icon_data[k].click)*/
        lhp_run_func(this.data.icon_data[k].click);
        if(!this.data.click_stop){event.stopPropagation();}//阻止父级

    }
},

mounted:function(){
let urls=_this.deepcopy_data.tree_data.url;
// 获取我的项目XXX目录下的所有项目信息_url:'/get_project_info',
// 获取我的他人目录_url:'/get_project_info2',
// 获取我的项目XXX目录下的所有项目信息_url:'/get_my_project_all',

// 获取他人项目XXX目录下的所有项目信息_url:'/get_other_project_all',
// 获取他人项目列表_url:'/get_other_projects',
// 新建我的项目_url:'/create_project_dir',

// 删除我的项目目录_url:'/del_project_dir',
// 新建我的项目_url:'/create_project',
// 保存项目_url:'/save_project',
// 删除我的项目_url:'/del_project',
// 修改我的项目名称_url:'/change_project',
// 查看项目参与者目录_url:'/project_user',

// 添加别人参与我的项目_url:'/add_other_project',
// 删除别人参与我的项目_url:'/del_other_project',
// 运行流程_url:'/run_flow',
// 结束流程_url:'/stop_flow',
_this.data.获取我的项目XXX目录下的所有项目信息_flag=false;
_this.data.获取我的项目XXX目录下的所有项目信息_request=request______({method:'post',url:urls.获取我的项目XXX目录下的所有项目信息_url});
_this.data.获取我的项目XXX目录下的所有项目信息_recv=function(received_data){
    // {
    //     "type": "okk",
    //     "data": {
    //         "1": {
            //     "base_info": {
            //         "vue_name": "a_1_0_2_15_1",
            //         "deepcopy_data": {
            //             "name": "未命名"
            //         }
            //     },
            //     "dict": {}
            // },
    //         "2": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         },
    //         "3": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         },
    //         "4": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         }
    //     }
    // }
    /*console.log("接收数据",received_data,_this.data.path);*/
    // _this.data.tree_data.set_dict(received_data.data,_this.data.path);
    // this.data.tree_data.check_dct[_this.data.path]=received_data;
    _this.data.recv_data=received_data;
    console.log("接收到数据:",_this.data.recv_data);
    _this.data.获取我的项目XXX目录下的所有项目信息_flag=true;
}

_this.data.刷新=async function(){
    if(!_this.data.dir1_id){
        let path_lst=_this.data.path.split(".");
        _this.data.dir1_id=path_lst[path_lst.length-1];
    }
    let count=0;
    console.log("刷新！")
    _this.data.获取我的项目XXX目录下的所有项目信息_flag=false;
    _this.data.获取我的项目XXX目录下的所有项目信息_request({
        body_data:{"dir1_id":_this.data.dir1_id},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.获取我的项目XXX目录下的所有项目信息_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.获取我的项目XXX目录下的所有项目信息_flag==true){
            // console.log("_this.data.tree_data",_this.data.tree_data)
            // window.ssssss=_this.data.tree_data
            _this.data.recv_data.user_id=cookie_read("easyedit_userid");
            _this.data.recv_data['dir1_id']=_this.data.dir1_id;
            lhp_run_func(_this.data.tree_data.设置显示项目,_this.data.recv_data);
            break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '获取我的项目XXX目录下的所有项目信息失败'});break}
    }
}


_this.data.新建我的项目_request=request______({method:'post',url:urls.新建我的项目_url});

_this.data.新建我的项目_recv=function(received_data){
    // {
    //     "type": "okk",
    //     "data": {
    //         "1": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         },
    //         "2": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         },
    //         "3": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         },
    //         "4": {
    //             "base_info": {
    //                 "vue_name": "a_1_0_2_15_1",
    //                 "deepcopy_data": {
    //                     "name": "未命名"
    //                 }
    //             },
    //             "dict": {}
    //         }
    //     }
    // }
    console.log("接收数据",received_data);
    
    received_data.data.user_id=cookie_read("easyedit_userid");
    received_data.data['dir1_id']=_this.data.dir1_id;
    lhp_run_func(_this.data.tree_data.添加新项目,received_data.data);
    _this.data.新建我的项目_flag=true;
}
_this.data.新建我的项目=async function(name){
    if(!_this.data.dir1_id){
        let path_lst=_this.data.path.split(".");
        _this.data.dir1_id=path_lst[path_lst.length-1];
    }
    let count=0;
    _this.data.新建我的项目_flag=false;
    _this.data.新建我的项目_request({
        body_data:{dir1_id:_this.data.dir1_id,name:name},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.新建我的项目_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.新建我的项目_flag==true){break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '新建我的项目失败'});break}
    }
}

let findKeydeepcopy=function (k,obj, path = []){
    // 遍历对象的所有属性  
    for (let key in obj) {  
        if (obj.hasOwnProperty(key)) {  
            // 更新当前路径  
            let currentPath = [...path, key];  
  
            // 如果当前属性的 key 是 'aaa'，返回路径  
            if (key === k) {  
                return currentPath;  
            }  
  
            // 如果当前属性是对象，递归调用  
            if (typeof obj[key] === 'object' && obj[key] !== null) {  
                let result = findKeydeepcopy(k,obj[key], currentPath);  
                if (result) {  
                    return result;  
                }  
            }  
        }  
    }  
  
    // 如果没有找到 key 为 'aaa' 的对象，返回 null  
    return null;  
}  
let findkey=function(key,data){
let lst=findKeydeepcopy(key,data);
console.log("lst",lst)
let copy_data=data;
for(let i=0;i<lst.length;i++){copy_data=copy_data[lst[i]]}
console.log("copy_data",copy_data)
return copy_data;
}

_this.data.更改目录名称_request=request______({method:'post',url:urls.更改目录名称_url});

_this.data.更改目录名称_recv=function(received_data){
   
    console.log("接收数据",received_data);
    let data=findkey("deepcopy_data",received_data);
    _this.data.tree_data.change_deepcopy_data(_this.data.path,data);
    // _this.data.tree_data.set_dict(received_data,_this.data.path);
    _this.data.更改目录名称_flag=true;
}
_this.data.更改目录名称=async function(name){
    let path_lst=_this.data.path.split(".");
    let dir1_id=path_lst[path_lst.length-1];
    let count=0;
    _this.data.更改目录名称_flag=false;
    _this.data.更改目录名称_request({
        body_data:{name:name,dir1_id:dir1_id},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.更改目录名称_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.更改目录名称_flag==true){break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '更改目录名称失败'});break}
    }
}
_this.data.删除目录_request=request______({method:'post',url:urls.删除目录_url});

_this.data.删除目录_recv=function(received_data){
   
    console.log("接收数据",received_data);
    _this.data.tree_data.del_path(_this.data.path);
    // _this.data.tree_data.set_dict(received_data,_this.data.path);
    _this.data.删除目录_flag=true;
}
_this.data.删除目录=async function(){
    let path_lst=_this.data.path.split(".");
    let dir1_id=path_lst[path_lst.length-1];
    let count=0;
    _this.data.删除目录_flag=false;
    _this.data.删除目录_request({
        body_data:{dir1_id:dir1_id},
        execute_lst:[
                      {
                        'type':'func',
                        'func':_this.data.删除目录_recv,
                        'args':['received_data'],
                      },
                    ]
    });
    await time_sleep(20);
    while(1){
        count++;
        await time_sleep(1);
        if(_this.data.删除目录_flag==true){break}
        if(count>500){Vue.prototype.$notify({type: 'error',message: '删除目录失败'});break}
    }
}



_this.data.icon_data={
    198:{

    icon_class:"icon iconfont icon-shanchu",
    hovertext:"删除目录",
    add_show:false,
    click:async function(){
        
        _this.$confirm('此操作将永久删除, 是否继续?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
        _this.data.删除目录();
          
          }).catch(() => {
            this.$message({
              type: 'info',
              message: '已取消删除'
            });          
          });
        
        },
    },
    199:{

    icon_class:"icon iconfont icon-write",
    hovertext:"修改目录名称",
    add_show:false,
    click:async function(){
        _this.$prompt('修改目录名称', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
          }).then(({ value }) => {
           _this.data.更改目录名称(value);
          }).catch(() => {
            _this.$message({
              type: 'info',
              message: '取消输入'
            });       
          });},
    },
    200:{

    icon_class:"icon iconfont icon-xinjianxiangmu",
    hovertext:"新建项目",
    click:async function(){
        _this.$prompt('新建项目(名称)', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
          }).then(({ value }) => {
           _this.data.新建我的项目(value);
          }).catch(() => {
            _this.$message({
              type: 'info',
              message: '取消输入'
            });       
          });},
    },
}


}

})